#!/bin/bash

# 基础 URL
BASE_URL="http://127.0.0.1:5000"

echo "🚀 正在运行测试脚本..."

# 1. 正常访问根页面
echo -e "\n1️⃣ 正常访问根页面"
curl -v $BASE_URL

# 2. 获取资源目录树（根目录）
echo -e "\n2️⃣ 获取资源目录树（根目录）"
curl -v "$BASE_URL/api/tree"

# 3. 获取资源目录树（子目录）
echo -e "\n3️⃣ 获取资源目录树（子目录）"
curl -v "$BASE_URL/api/tree?path=folder"

# 4. 下载文件（正常情况）
echo -e "\n4️⃣ 下载文件（正常情况）"
curl -v "$BASE_URL/download/file1.txt" --output file1_downloaded.txt

# 5. 下载文件（预检）
echo -e "\n5️⃣ 下载文件（预检）"
curl -v -H "X-Check-Limit: true" "$BASE_URL/download/file1.txt"

# 6. 文件不存在（错误 404）
echo -e "\n6️⃣ 文件不存在（错误 404）"
curl -v "$BASE_URL/download/nonexistent.txt"

# 7. 非法路径访问（路径穿越攻击）
echo -e "\n7️⃣ 路径穿越攻击测试（错误 403）"
curl -v "$BASE_URL/download/../../../../../etc/passwd"

# 8. 非法路径访问（错误 403）"
echo -e "\n8️⃣ 非法路径访问（错误 403）"
curl -v "$BASE_URL/download/../resources/file1.txt"

# 9. 请求频率过高（限流测试）
echo -e "\n9️⃣ 请求频率过高（限流测试）"
for i in {1..40}; do
    echo -n "."
    curl -s "$BASE_URL/download/file1.txt" --output /dev/null
done
echo -e "\n模拟 40 次请求，部分请求应被限流（429）"

# 10. 再次尝试下载，应被限流（429）
echo -e "\n🔟 再次尝试下载，应被限流（429）"
curl -v "$BASE_URL/download/file1.txt"

echo -e "\n✅ 所有测试完成"
